home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / C / Screens / DoubleBuffer.c next >
Encoding:
C/C++ Source or Header  |  1998-07-05  |  1.2 KB  |  47 lines

  1. /* Dice: dcc -l0 -mD dpk.o tags.o DoubleBuffer.c -o DoubleBuffer
  2. **
  3. ** This simple demo shows how to double buffer the screen.
  4. */
  5.  
  6. #include <proto/dpkernel.h>
  7.  
  8. BYTE *ProgName      = "Double Buffer Demo";
  9. BYTE *ProgAuthor    = "Paul Manias";
  10. BYTE *ProgDate      = "February 1998";
  11. BYTE *ProgCopyright = "DreamWorld Productions (c) 1996-1998.  Freely distributable.";
  12. BYTE *ProgShort     = "Demonstration of double buffering.";
  13.  
  14. void main(void)
  15. {
  16.   struct Picture *picture;
  17.   struct GScreen *screen;
  18.   struct JoyData *JoyData;
  19.   struct FileName PicFile = { ID_FILENAME, "GMS:demos/data/PIC.Green" };
  20.  
  21.   if (picture = Load(&PicFile, ID_PICTURE)) {
  22.      screen = Get(ID_SCREEN);
  23.      CopyStructure(picture,screen);
  24.      screen->Attrib = SCR_DBLBUFFER|SCR_CENTRE;
  25.  
  26.      if (screen = Init(screen,NULL)) {
  27.  
  28.         Copy(picture->Bitmap,screen->Bitmap);
  29.  
  30.         if (JoyData = Init(Get(ID_JOYDATA),NULL)) {
  31.            Display(screen);
  32.            Query(JoyData);
  33.  
  34.            while (!(JoyData->Buttons & JD_LMB)) {
  35.              WaitAVBL();
  36.              SwapBuffers(screen);
  37.              Query(JoyData);
  38.            }
  39.         Free(JoyData);
  40.         }
  41.      Free(picture);
  42.      }
  43.   Free(screen);
  44.   }
  45. }
  46.  
  47.